package com.augurit.gzcgwsp.readAndParseXML.createXML;

import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

public class CreateExchangeMessageExceptionXML {
	/*
	 * 生成 交换异常反馈的XML
	 */
	public static Document createExchangeMessageExceptionXML (Map map){
		Document document = DocumentHelper.createDocument();
		//生成一个接点
		Element feedback = document.addElement("exception");
		//生成feedback的一个接点
		Element sn = feedback.addElement("sn");
		//生成sn里面的值
		sn.addText((String)map.get("sn"));
		//生成feedback的一个接点
		Element exchangeType = feedback.addElement("exchangeType");
		//生成exchangeType里面的值
		exchangeType.addText("MS");
		//生成feedback的一个接点
		Element sender = feedback.addElement("sender");
		//生成sender里面的值
		sender.addText((String)map.get("receiver"));
		//生成feedback的一个接点
		Element receiver = feedback.addElement("receiver");
		//生成receiver里面的值
		receiver.addText((String)map.get("sender"));
		//生成feedback的一个接点
		Element businessCode = feedback.addElement("businessCode");
		//生成businessCode里面的值
		businessCode.addText((String)map.get("businessCode"));
		//生成feedback的一个接点
		Element controlFile = feedback.addElement("controlFile");
		//生成controlFile里面的值
		controlFile.addText((String)map.get("controlFile"));
		//生成feedback的一个接点
		Element time = feedback.addElement("time");
		//生成time里面的值
		Date dateTemp = new Date();
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String  date = sdf.format(dateTemp);
		time.addText(date);
		//生成feedback的一个接点
		Element errorCode = feedback.addElement("errorCode");
		//生成errorCode里面的值
		errorCode.addText((String)map.get("errorCode"));
		//生成feedback的一个接点
		Element errorStatus = feedback.addElement("errorStatus");
		//生成errorStatus里面的值
		errorStatus.addText((String)map.get("errorStatus"));
		//生成feedback的一个接点
		Element errorStack = feedback.addElement("errorStack");
		//生成errorStack里面的值
		errorStack.addText((String)map.get("errorStack"));		
		//生成feedback的一个接点
		Element errorData = feedback.addElement("errorData");
		//生成errorData的一个接点
		Element approvalId = errorData.addElement("approvalId");
		//生成approvalId里面的值
		approvalId.addText((String)map.get("approvalId"));
		
		//生成id里面的参数值
		//id.addAttribute("name", "id");
		return document;
	}
	
	/**
	 * 写入xml文件地址
	 * @param document 所属要写入的内容
	 * @param outFile 文件存放的地址
	 */
	public static void writeDocument(Document document, String outFile){
		try{
			//设置文件编码
			OutputFormat xmlFormat = OutputFormat.createPrettyPrint();
			xmlFormat.setEncoding("UTF-8");
			XMLWriter  xmlWriter = new XMLWriter(new FileOutputStream(outFile), xmlFormat);
			xmlWriter.write(document);
			//关闭
			xmlWriter.close();
		}catch(IOException e){
			System.out.println("文件没有找到");
			e.printStackTrace();
		}
    }	
	
	
}
